﻿using System;
using System.Collections.Generic;
using DomainModel;

namespace Repository.Abstract
{
    public interface ILessonRepository : IRepository<Lesson>
    {
        Lesson GetLessonByDateStudentTimetableUnit(DateTime date, User student, TimetableUnit timetableUnit);
        IEnumerable<Lesson> GetLessonsByGroup(Group group);
        IEnumerable<Lesson> GetLessonsByGroupAndSubject(Group group, Subject subject);
        IEnumerable<Lesson> GetLessonsBySemesterAndGroupAndSubject(StudySemester semester, Group group, Subject subject);
        int GetMissedLessonsNumber(StudySemester semester, User student, Subject subject);
        double GetAvgBall(StudySemester semester, User student, Subject subject);
        IEnumerable<Lesson> GetLessonsBySemesterAndStudentAndDateRange(StudySemester semester, User student, DateTime beginDate, DateTime endDate);
        IEnumerable<Lesson> GetLessonsByStudentAndDate(User student, DateTime date);
    }
}